package com.dwy2002.product.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.dwy2002.common.Result;
import com.dwy2002.pojo.dto.users.ProductFavoritesPageDTO;
import com.dwy2002.pojo.po.product.Products;
import com.dwy2002.pojo.po.users.ProductFavorites;

import java.util.List;

/**
 * @author 杜伟毅
 * @version 1.0
 * @since 2025/03/17
 */
public interface IProductFavoritesService extends IService<ProductFavorites> {
    /**
     * 返回用户全部商品收藏
     *
     * @param dto 商品收藏DTO
     * @author 杜伟毅
     * @since 2025/3/17 0017 23:33
     */
    Result<List<Products>> getProductFavorites(ProductFavoritesPageDTO dto);

    /**
     * 收藏商品
     *
     * @param productId 商品id
     * @author 杜伟毅
     * @since 2025/3/18 0018 14:07
     */
    Result<Void> saveProductFavorites(String productId);

    /**
     * 取消收藏商品
     *
     * @param productId 商品id
     * @author 杜伟毅
     * @since 2025/3/18 0018 16:10
     */
    Result<Void> cancelFavorites(String productId);

    /**
     * 取消收藏商品(系统)
     * <p>
     * productIds 商品id集合
     *
     * @author 杜伟毅
     * @since 2025/3/18 0018 16:18
     */
    void cancelFavoritesSystem(List<String> productIds);
}
